home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1993 July / InfoMagic USENET CD-ROM July 1993.ISO / sources / x / volume10 / xt-examples / part02 < prev    next >
Encoding:
Internet Message Format  |  1990-11-04  |  43.9 KB

  1. Path: uunet!ns-mx!iowasp.physics.uiowa.edu!maverick.ksu.ksu.edu!zaphod.mps.ohio-state.edu!usc!cs.utexas.edu!sun-barr!newstop!sun!adobe.com!asente
  2. From: asente@adobe.com
  3. Newsgroups: comp.sources.x
  4. Subject: v10i042: Examples from New Xt Book, Part02/05
  5. Message-ID: <144422@sun.Eng.Sun.COM>
  6. Date: 1 Nov 90 05:52:21 GMT
  7. References: <csx-10i041:xt-examples@uunet.UU.NET>
  8. Sender: news@sun.Eng.Sun.COM
  9. Lines: 1167
  10. Approved: argv@sun.com
  11.  
  12. Submitted-by: asente@adobe.com
  13. Posting-number: Volume 10, Issue 42
  14. Archive-name: xt-examples/part02
  15.  
  16. #! /bin/sh
  17. # This is a shell archive, meaning:
  18. # 1. Remove everything above the #! /bin/sh line.
  19. # 2. Save the resulting text in a file.
  20. # 3. Execute the file with /bin/sh (not csh) to create the files:
  21. #    fragments
  22. # This archive created: Wed Oct 24 14:19:37 1990
  23. export PATH; PATH=/bin:$PATH
  24. if test ! -d 'fragments'
  25. then
  26.     echo shar: creating directory "'fragments'"
  27.     mkdir 'fragments'
  28. fi
  29. echo shar: entering directory "'fragments'"
  30. cd 'fragments'
  31. echo shar: extracting "'complexboxgeometrymanager.c'" '(2832 characters)'
  32. if test -f 'complexboxgeometrymanager.c'
  33. then
  34.     echo shar: will not over-write existing file "'complexboxgeometrymanager.c'"
  35. else
  36. sed 's/^    X//' << \SHAR_EOF > 'complexboxgeometrymanager.c'
  37.     X/***********************************************************
  38.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  39.     X
  40.     X                        All Rights Reserved
  41.     X
  42.     XPermission to use, copy, modify, and distribute these examples for any
  43.     Xpurpose and without fee is hereby granted, provided that the above
  44.     Xcopyright notice appear in all copies and that both that copyright
  45.     Xnotice and this permission notice appear in supporting documentation,
  46.     Xand that the name of Digital not be used in advertising or publicity
  47.     Xpertaining to distribution of the software without specific, written
  48.     Xprior permission.
  49.     X
  50.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  51.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  52.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  53.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  54.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  55.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  56.     XOR PERFORMANCE OF THIS SOFTWARE.
  57.     X
  58.     X******************************************************************/
  59.     X
  60.     Xstatic XtGeometryResult GeometryManager(w, desired, allowed)
  61.     X    Widget w;
  62.     X    XtWidgetGeometry *desired, *allowed;
  63.     X{
  64.     X    BoxWidget box = (BoxWidget) XtParent(w);
  65.     X    XtWidgetGeometry request;
  66.     X    XtGeometryResult result;
  67.     X    Dimension save_width, save_height, save_border_width;
  68.     X    Position save_x, save_y;
  69.     X
  70.     X#define Wants(flag) (desired->request_mode & flag)
  71.     X
  72.     X    save_width = w->core.width;
  73.     X    save_height = w->core.height;
  74.     X    save_border_width = w->core.border_width;
  75.     X    save_x = w->core.x;
  76.     X    save_y = w->core.y;
  77.     X
  78.     X    if (Wants(CWWidth)) w->core.width = desired->width;
  79.     X    if (Wants(CWHeight)) w->core.height = desired->height;
  80.     X    if (Wants(CWX)) w->core.x = desired->x;
  81.     X    if (Wants(CWY)) w->core.y = desired->y;
  82.     X    if (Wants(CWBorderWidth)) {
  83.     X    w->core.border_width = desired->border_width;
  84.     X    }
  85.     X
  86.     X    CalculateNewSize(box, &request.width, &request.height);
  87.     X
  88.     X    if (request.width == box->core.width &&
  89.     X        request.height == box->core.height) {
  90.     X    if (Wants(XtCWQueryOnly)) {
  91.     X        w->core.width = save_width;
  92.     X        w->core.height = save_height;
  93.     X        w->core.border_width = save_border_width;
  94.     X        w->core.x = save_x;
  95.     X        w->core.y = save_y;
  96.     X    }
  97.     X    return XtGeometryYes;
  98.     X    }
  99.     X
  100.     X    request.request_mode = CWWidth | CWHeight;
  101.     X    if (Wants(XtCWQueryOnly)) request.request_mode |= XtCWQueryOnly;
  102.     X
  103.     X    result = XtMakeGeometryRequest((Widget) box, &request,
  104.     X        (XtGeometryRequest *) NULL);
  105.     X    if (result == XtGeometryAlmost) result = XtGeometryNo;
  106.     X    if (result == XtGeometryNo || Wants(XtCWQueryOnly)) {
  107.     X    w->core.width = save_width;
  108.     X    w->core.height = save_height;
  109.     X    w->core.border_width = save_border_width;
  110.     X    w->core.x = save_x;
  111.     X    w->core.y = save_y;
  112.     X    }
  113.     X    return result;
  114.     X
  115.     X#undef Wants
  116.     X}
  117. SHAR_EOF
  118. if test 2832 -ne "`wc -c < 'complexboxgeometrymanager.c'`"
  119. then
  120.     echo shar: error transmitting "'complexboxgeometrymanager.c'" '(should have been 2832 characters)'
  121. fi
  122. fi # end of overwriting check
  123. echo shar: extracting "'Vendor.h'" '(1451 characters)'
  124. if test -f 'Vendor.h'
  125. then
  126.     echo shar: will not over-write existing file "'Vendor.h'"
  127. else
  128. sed 's/^    X//' << \SHAR_EOF > 'Vendor.h'
  129.     X/***********************************************************
  130.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  131.     X
  132.     X                        All Rights Reserved
  133.     X
  134.     XPermission to use, copy, modify, and distribute these examples for any
  135.     Xpurpose and without fee is hereby granted, provided that the above
  136.     Xcopyright notice appear in all copies and that both that copyright
  137.     Xnotice and this permission notice appear in supporting documentation,
  138.     Xand that the name of Digital not be used in advertising or publicity
  139.     Xpertaining to distribution of the software without specific, written
  140.     Xprior permission.
  141.     X
  142.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  143.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  144.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  145.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  146.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  147.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  148.     XOR PERFORMANCE OF THIS SOFTWARE.
  149.     X
  150.     X******************************************************************/
  151.     X
  152.     X#ifndef VENDOR_H
  153.     X#define VENDOR_H
  154.     X
  155.     X#define XtNnoTitle "noTitle"
  156.     X#define XtNtitleFont "titleFont"
  157.     X
  158.     X#define XtCNoTitle "NoTitle"
  159.     X#define XtCTitleFont "TitleFont"
  160.     X
  161.     X/* Class record constants */
  162.     X
  163.     Xtypedef struct _VendorShellClassRec *VendorShellWidgetClass;
  164.     X
  165.     Xextern WidgetClass vendorShellWidgetClass;
  166.     X
  167.     X#endif /* VENDOR_H */
  168. SHAR_EOF
  169. if test 1451 -ne "`wc -c < 'Vendor.h'`"
  170. then
  171.     echo shar: error transmitting "'Vendor.h'" '(should have been 1451 characters)'
  172. fi
  173. fi # end of overwriting check
  174. echo shar: extracting "'VendorP.h'" '(1925 characters)'
  175. if test -f 'VendorP.h'
  176. then
  177.     echo shar: will not over-write existing file "'VendorP.h'"
  178. else
  179. sed 's/^    X//' << \SHAR_EOF > 'VendorP.h'
  180.     X/***********************************************************
  181.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  182.     X
  183.     X                        All Rights Reserved
  184.     X
  185.     XPermission to use, copy, modify, and distribute these examples for any
  186.     Xpurpose and without fee is hereby granted, provided that the above
  187.     Xcopyright notice appear in all copies and that both that copyright
  188.     Xnotice and this permission notice appear in supporting documentation,
  189.     Xand that the name of Digital not be used in advertising or publicity
  190.     Xpertaining to distribution of the software without specific, written
  191.     Xprior permission.
  192.     X
  193.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  194.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  195.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  196.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  197.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  198.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  199.     XOR PERFORMANCE OF THIS SOFTWARE.
  200.     X
  201.     X******************************************************************/
  202.     X
  203.     X#ifndef  VENDORP_H
  204.     X#define VENDORP_H
  205.     X
  206.     X/* New fields for the VendorShell widget class record */
  207.     X
  208.     Xtypedef struct {
  209.     X    XtPointer extension;
  210.     X} VendorShellClassPart;
  211.     X
  212.     Xtypedef struct _VendorShellClassRec {
  213.     X    CoreClassPart    core_class;
  214.     X    CompositeClassPart    composite_class;
  215.     X    ShellClassPart      shell_class;
  216.     X    WMShellClassPart       wm_shell_class;
  217.     X    VendorShellClassPart vendor_shell_class;
  218.     X} VendorShellClassRec;
  219.     X
  220.     Xextern VendorShellClassRec vendorShellClassRec;
  221.     X
  222.     X/* New fields for the vendor shell widget. */
  223.     X
  224.     Xtypedef struct {
  225.     X    Boolean    no_title;
  226.     X    Font    title_font;
  227.     X} VendorShellPart;
  228.     X
  229.     Xtypedef struct {
  230.     X    CorePart         core;
  231.     X    CompositePart     composite;
  232.     X    ShellPart         shell;
  233.     X    WMShellPart        wm;
  234.     X    VendorShellPart    vendor;
  235.     X} VendorShellRec, *VendorShellWidget;
  236.     X
  237.     X#endif  /* VENDORP_H */
  238. SHAR_EOF
  239. if test 1925 -ne "`wc -c < 'VendorP.h'`"
  240. then
  241.     echo shar: error transmitting "'VendorP.h'" '(should have been 1925 characters)'
  242. fi
  243. fi # end of overwriting check
  244. echo shar: extracting "'appgoodbye.c'" '(2135 characters)'
  245. if test -f 'appgoodbye.c'
  246. then
  247.     echo shar: will not over-write existing file "'appgoodbye.c'"
  248. else
  249. sed 's/^    X//' << \SHAR_EOF > 'appgoodbye.c'
  250.     X/***********************************************************
  251.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  252.     X
  253.     X                        All Rights Reserved
  254.     X
  255.     XPermission to use, copy, modify, and distribute these examples for any
  256.     Xpurpose and without fee is hereby granted, provided that the above
  257.     Xcopyright notice appear in all copies and that both that copyright
  258.     Xnotice and this permission notice appear in supporting documentation,
  259.     Xand that the name of Digital not be used in advertising or publicity
  260.     Xpertaining to distribution of the software without specific, written
  261.     Xprior permission.
  262.     X
  263.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  264.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  265.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  266.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  267.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  268.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  269.     XOR PERFORMANCE OF THIS SOFTWARE.
  270.     X
  271.     X******************************************************************/
  272.     X
  273.     Xint main(argc, argv)
  274.     X    unsigned int argc;
  275.     X    char **argv;
  276.     X{
  277.     X    Widget toplevel, label, button, box;
  278.     X    XtAppContext app;
  279.     X    Display *dpy;
  280.     X    Arg args[2];
  281.     X    int n;
  282.     X    unsigned_int saved_argc;
  283.     X    char **saved_argv;
  284.     X
  285.     X    XtToolkitInitialize();            /* Initialize the toolkit */
  286.     X
  287.     X    app = XtCreateApplicationContext();    /* Create an app context */
  288.     X
  289.     X    /* Copy argc and argv */
  290.     X    saved_argc = argc;
  291.     X    saved_argv = XtMalloc(argc * sizeof(char *));
  292.     X    bcopy(argv, saved_argv, argc * sizeof(char *));
  293.     X
  294.     X    /* Open the default display */
  295.     X    dpy = XtOpenDisplay(app, NULL, NULL, "Goodbye",
  296.     X        NULL, 0, &argc, argv);
  297.     X
  298.     X    if (dpy == NULL) {
  299.     X    fprintf(stderr, "Couldn't open display connection\n");
  300.     X    exit(1);
  301.     X    }
  302.     X
  303.     X    /* Create a shell */
  304.     X    n = 0;
  305.     X    XtSetArg(args[n], XtNargc, saved_argc);    n++;
  306.     X    XtSetArg(args[n], XtNargv, saved_argv);    n++;
  307.     X
  308.     X    toplevel = XtAppCreateShell(NULL, "Goodbye",
  309.     X        applicationShellWidgetClass, dpy, args, n);
  310.     X
  311.     X    /* The rest of the code is identical */
  312.     X}
  313. SHAR_EOF
  314. if test 2135 -ne "`wc -c < 'appgoodbye.c'`"
  315. then
  316.     echo shar: error transmitting "'appgoodbye.c'" '(should have been 2135 characters)'
  317. fi
  318. fi # end of overwriting check
  319. echo shar: extracting "'extension.c'" '(1957 characters)'
  320. if test -f 'extension.c'
  321. then
  322.     echo shar: will not over-write existing file "'extension.c'"
  323. else
  324. sed 's/^    X//' << \SHAR_EOF > 'extension.c'
  325.     X/***********************************************************
  326.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  327.     X
  328.     X                        All Rights Reserved
  329.     X
  330.     XPermission to use, copy, modify, and distribute these examples for any
  331.     Xpurpose and without fee is hereby granted, provided that the above
  332.     Xcopyright notice appear in all copies and that both that copyright
  333.     Xnotice and this permission notice appear in supporting documentation,
  334.     Xand that the name of Digital not be used in advertising or publicity
  335.     Xpertaining to distribution of the software without specific, written
  336.     Xprior permission.
  337.     X
  338.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  339.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  340.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  341.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  342.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  343.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  344.     XOR PERFORMANCE OF THIS SOFTWARE.
  345.     X
  346.     X******************************************************************/
  347.     X
  348.     Xvoid MyDefineQueryMinimumSize(widget_class, proc)
  349.     X    WidgetClass widget_class;
  350.     X    MinimumSizeProc proc;
  351.     X{
  352.     X    static Quark myWidgetSet = NULLQUARK;
  353.     X    MyCoreClassExtension extension;
  354.     X
  355.     X    if (myWidgetSet == NULLQUARK) {
  356.     X    myWidgetSet = XrmStringToQuark("MY_WIDGET_SET");
  357.     X    }
  358.     X
  359.     X    for (extension = widget_class->core_class.extension;
  360.     X        extension != NULL && extension->record_type != myWidgetSet;
  361.     X        extension = extension->next_extension) {}
  362.     X
  363.     X    if (extension == NULL) {
  364.     X    extension = XtNew(MyCoreClassExtensionRec);
  365.     X    extension->next_extension = widget_class->core_class.extension;
  366.     X    widget_class->core_class.extension = extension;
  367.     X    extension->record_type = myWidgetSet;
  368.     X    extension->version = @i[something];
  369.     X    extension->record_size = sizeof(MyCoreClassExtensionRec);
  370.     X    }
  371.     X
  372.     X    extension->query_minimum_size = proc;
  373.     X}    
  374. SHAR_EOF
  375. if test 1957 -ne "`wc -c < 'extension.c'`"
  376. then
  377.     echo shar: error transmitting "'extension.c'" '(should have been 1957 characters)'
  378. fi
  379. fi # end of overwriting check
  380. echo shar: extracting "'fakeexample.c'" '(2304 characters)'
  381. if test -f 'fakeexample.c'
  382. then
  383.     echo shar: will not over-write existing file "'fakeexample.c'"
  384. else
  385. sed 's/^    X//' << \SHAR_EOF > 'fakeexample.c'
  386.     X/***********************************************************
  387.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  388.     X
  389.     X                        All Rights Reserved
  390.     X
  391.     XPermission to use, copy, modify, and distribute these examples for any
  392.     Xpurpose and without fee is hereby granted, provided that the above
  393.     Xcopyright notice appear in all copies and that both that copyright
  394.     Xnotice and this permission notice appear in supporting documentation,
  395.     Xand that the name of Digital not be used in advertising or publicity
  396.     Xpertaining to distribution of the software without specific, written
  397.     Xprior permission.
  398.     X
  399.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  400.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  401.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  402.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  403.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  404.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  405.     XOR PERFORMANCE OF THIS SOFTWARE.
  406.     X
  407.     X******************************************************************/
  408.     X
  409.     X#include <X11/Intrinsic.h>
  410.     X#include <X11/StringDefs.h>
  411.     X
  412.     Xvoid DrawContents(widget, event, params, num_params)
  413.     X    Widget widget;
  414.     X    XEvent *event;
  415.     X    String *params;        /* Unused */
  416.     X    Cardinal *num_params;    /* Unused */
  417.     X{
  418.     X    Window window = XtWindow(widget);
  419.     X    Display display = XtDisplay(widget);
  420.     X
  421.     X    if (event->type != Expose) return;
  422.     X    /* Draw in the window... */
  423.     X}
  424.     X
  425.     Xint main(argc, argv)
  426.     X    unsigned int argc;
  427.     X    char **argv;
  428.     X{
  429.     X    Widget toplevel, panel;
  430.     X    Arg args[25];
  431.     X    int n;
  432.     X    XtAppContext app;
  433.     X    static XtActionsRec actions[] = {{"refresh", DrawContents}};
  434.     X    static char translations[] = "<Expose> : refresh()";
  435.     X    
  436.     X    toplevel = XtAppInitialize(&app, "Draw",
  437.     X        (XrmOptionDescList) NULL, 0, &argc, argv,
  438.     X            (String *) NULL, (ArgList) NULL, 0);
  439.     X
  440.     X    XtAppAddActions(app, actions, XtNumber(actions));
  441.     X
  442.     X    n = 0;
  443.     X    XtSetArg(args[n], XtNwidth, 100);            n++;
  444.     X    XtSetArg(args[n], XtNheight, 100);            n++;
  445.     X    XtSetArg(args[n], XtNtranslations,
  446.     X        XtParseTranslationTable(translations));    n++;
  447.     X    panel = XtCreateManagedWidget("panel", widgetClass, toplevel,
  448.     X        args, n);
  449.     X
  450.     X    XtRealizeWidget(toplevel);
  451.     X    XtAppMainLoop(app);
  452.     X}
  453. SHAR_EOF
  454. if test 2304 -ne "`wc -c < 'fakeexample.c'`"
  455. then
  456.     echo shar: error transmitting "'fakeexample.c'" '(should have been 2304 characters)'
  457. fi
  458. fi # end of overwriting check
  459. echo shar: extracting "'fetchatom.c'" '(1446 characters)'
  460. if test -f 'fetchatom.c'
  461. then
  462.     echo shar: will not over-write existing file "'fetchatom.c'"
  463. else
  464. sed 's/^    X//' << \SHAR_EOF > 'fetchatom.c'
  465.     X/***********************************************************
  466.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  467.     X
  468.     X                        All Rights Reserved
  469.     X
  470.     XPermission to use, copy, modify, and distribute these examples for any
  471.     Xpurpose and without fee is hereby granted, provided that the above
  472.     Xcopyright notice appear in all copies and that both that copyright
  473.     Xnotice and this permission notice appear in supporting documentation,
  474.     Xand that the name of Digital not be used in advertising or publicity
  475.     Xpertaining to distribution of the software without specific, written
  476.     Xprior permission.
  477.     X
  478.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  479.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  480.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  481.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  482.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  483.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  484.     XOR PERFORMANCE OF THIS SOFTWARE.
  485.     X
  486.     X******************************************************************/
  487.     X
  488.     Xstatic Atom FetchAtom(w, name)
  489.     X    Widget w;
  490.     X    String name;
  491.     X{
  492.     X    Atom a;
  493.     X    XrmValue source, dest;
  494.     X
  495.     X    source.size = strlen(name)+1;
  496.     X    source.addr = name;
  497.     X    dest.size = sizeof(Atom);
  498.     X    dest.addr = (caddr_t) &a;
  499.     X    
  500.     X    (void) XtConvertAndStore(w, XtRString, &source, XtRAtom, &dest);
  501.     X    return a;
  502.     X}
  503.     X    
  504. SHAR_EOF
  505. if test 1446 -ne "`wc -c < 'fetchatom.c'`"
  506. then
  507.     echo shar: error transmitting "'fetchatom.c'" '(should have been 1446 characters)'
  508. fi
  509. fi # end of overwriting check
  510. echo shar: extracting "'keymappingexample.c'" '(1893 characters)'
  511. if test -f 'keymappingexample.c'
  512. then
  513.     echo shar: will not over-write existing file "'keymappingexample.c'"
  514. else
  515. sed 's/^    X//' << \SHAR_EOF > 'keymappingexample.c'
  516.     X/***********************************************************
  517.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  518.     X
  519.     X                        All Rights Reserved
  520.     X
  521.     XPermission to use, copy, modify, and distribute these examples for any
  522.     Xpurpose and without fee is hereby granted, provided that the above
  523.     Xcopyright notice appear in all copies and that both that copyright
  524.     Xnotice and this permission notice appear in supporting documentation,
  525.     Xand that the name of Digital not be used in advertising or publicity
  526.     Xpertaining to distribution of the software without specific, written
  527.     Xprior permission.
  528.     X
  529.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  530.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  531.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  532.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  533.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  534.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  535.     XOR PERFORMANCE OF THIS SOFTWARE.
  536.     X
  537.     X******************************************************************/
  538.     X
  539.     XKeySym k;
  540.     Xchar ch;
  541.     X
  542.     X/* Don't care about the modifiers, so pass NULL */
  543.     Xk = XtGetActionKeysym(event, NULL);
  544.     X
  545.     Xif (k == NoSymbol) {
  546.     X    /* Not a keyboard event or no keysym for the keycode in the
  547.     X       event.  Do whatever is appropriate. */
  548.     X} else {
  549.     X    /* Compensate for servers that call a minus a hyphen */
  550.     X    if (k == XK_hyphen) k = XK_minus;
  551.     X
  552.     X    if (k & 0xFF00 != 0) {
  553.     X    /* Not a keysym for an ISO Latin-1 character.  Do whatever
  554.     X       is appropriate.  If restricting to ASCII, mask with
  555.     X       0xFF80 instead. */
  556.     X    } else {
  557.     X    /* ISO Latin-1 keysyms are the same as the character */
  558.     X    ch = (char) k;
  559.     X
  560.     X    /* If control is set, mask off high bits */
  561.     X    if (event->xkey.modifiers & ControlMask) ch &= 0x1F;
  562.     X    }
  563.     X}
  564.     X
  565.     X/* Do whatever is appropriate with the character */
  566.     X
  567. SHAR_EOF
  568. if test 1893 -ne "`wc -c < 'keymappingexample.c'`"
  569. then
  570.     echo shar: error transmitting "'keymappingexample.c'" '(should have been 1893 characters)'
  571. fi
  572. fi # end of overwriting check
  573. echo shar: extracting "'setwmprotocol.c'" '(1932 characters)'
  574. if test -f 'setwmprotocol.c'
  575. then
  576.     echo shar: will not over-write existing file "'setwmprotocol.c'"
  577. else
  578. sed 's/^    X//' << \SHAR_EOF > 'setwmprotocol.c'
  579.     X/***********************************************************
  580.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  581.     X
  582.     X                        All Rights Reserved
  583.     X
  584.     XPermission to use, copy, modify, and distribute these examples for any
  585.     Xpurpose and without fee is hereby granted, provided that the above
  586.     Xcopyright notice appear in all copies and that both that copyright
  587.     Xnotice and this permission notice appear in supporting documentation,
  588.     Xand that the name of Digital not be used in advertising or publicity
  589.     Xpertaining to distribution of the software without specific, written
  590.     Xprior permission.
  591.     X
  592.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  593.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  594.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  595.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  596.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  597.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  598.     XOR PERFORMANCE OF THIS SOFTWARE.
  599.     X
  600.     X******************************************************************/
  601.     X
  602.     X/* Make these global, we'll need them later.  If this is a multi-
  603.     X   display application, these must be kept for each display. */
  604.     XAtom wm_take_focus, wm_save_yourself;
  605.     X
  606.     Xstatic Atom FetchAtom(w, name)
  607.     X    Widget w;
  608.     X    String name;
  609.     X{
  610.     X    Atom a;
  611.     X    XrmValue source, dest;
  612.     X
  613.     X    source.size = strlen(name)+1;
  614.     X    source.addr = name;
  615.     X    dest.size = sizeof(Atom);
  616.     X    dest.addr = &a;
  617.     X    
  618.     X    (void) XtConvertAndStore(w, XtRString, &source, XtRAtom, &dest);
  619.     X    return a;
  620.     X}
  621.     X
  622.     X/* Time to set the protocols */
  623.     XAtom protocolList[2];
  624.     X
  625.     Xwm_take_focus = FetchAtom(shell, "WM_TAKE_FOCUS");
  626.     Xwm_save_yourself = FetchAtom(shell, "WM_SAVE_YOURSELF");
  627.     XprotocolList[0] = wm_take_focus;
  628.     XprotocolList[1] = wm_save_yourself;
  629.     X
  630.     X(void) XSetWMProtocols(XtDisplay(shell), XtWindow(shell),
  631.     X    protocolList, XtNumber(protocolList));
  632. SHAR_EOF
  633. if test 1932 -ne "`wc -c < 'setwmprotocol.c'`"
  634. then
  635.     echo shar: error transmitting "'setwmprotocol.c'" '(should have been 1932 characters)'
  636. fi
  637. fi # end of overwriting check
  638. echo shar: extracting "'subresources.c'" '(1483 characters)'
  639. if test -f 'subresources.c'
  640. then
  641.     echo shar: will not over-write existing file "'subresources.c'"
  642. else
  643. sed 's/^    X//' << \SHAR_EOF > 'subresources.c'
  644.     X/***********************************************************
  645.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  646.     X
  647.     X                        All Rights Reserved
  648.     X
  649.     XPermission to use, copy, modify, and distribute these examples for any
  650.     Xpurpose and without fee is hereby granted, provided that the above
  651.     Xcopyright notice appear in all copies and that both that copyright
  652.     Xnotice and this permission notice appear in supporting documentation,
  653.     Xand that the name of Digital not be used in advertising or publicity
  654.     Xpertaining to distribution of the software without specific, written
  655.     Xprior permission.
  656.     X
  657.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  658.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  659.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  660.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  661.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  662.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  663.     XOR PERFORMANCE OF THIS SOFTWARE.
  664.     X
  665.     X******************************************************************/
  666.     X
  667.     Xtypedef struct {
  668.     X    int width_mm;
  669.     X    int height_mm;
  670.     X} mmDimensions;
  671.     X
  672.     Xstatic XtResource subresources[] = {
  673.     X    {XtNwidthMM, XtCWidthMM, XtRInt, sizeof(int),
  674.     X    XtOffsetOf(mmDimensions, width_mm),
  675.     X    XtRImmediate, (XtPointer) -1},
  676.     X    {XtNheightMM, XtCHeightMM, XtRInt, sizeof(int),
  677.     X    XtOffsetOf(mmDimensions, height_mm),
  678.     X    XtRImmediate, (XtPointer) -1}
  679.     X};
  680. SHAR_EOF
  681. if test 1483 -ne "`wc -c < 'subresources.c'`"
  682. then
  683.     echo shar: error transmitting "'subresources.c'" '(should have been 1483 characters)'
  684. fi
  685. fi # end of overwriting check
  686. echo shar: extracting "'subresourcesgetvalues.c'" '(1448 characters)'
  687. if test -f 'subresourcesgetvalues.c'
  688. then
  689.     echo shar: will not over-write existing file "'subresourcesgetvalues.c'"
  690. else
  691. sed 's/^    X//' << \SHAR_EOF > 'subresourcesgetvalues.c'
  692.     X/***********************************************************
  693.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  694.     X
  695.     X                        All Rights Reserved
  696.     X
  697.     XPermission to use, copy, modify, and distribute these examples for any
  698.     Xpurpose and without fee is hereby granted, provided that the above
  699.     Xcopyright notice appear in all copies and that both that copyright
  700.     Xnotice and this permission notice appear in supporting documentation,
  701.     Xand that the name of Digital not be used in advertising or publicity
  702.     Xpertaining to distribution of the software without specific, written
  703.     Xprior permission.
  704.     X
  705.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  706.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  707.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  708.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  709.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  710.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  711.     XOR PERFORMANCE OF THIS SOFTWARE.
  712.     X
  713.     X******************************************************************/
  714.     X
  715.     X{
  716.     X    mmDimensions dim;
  717.     X
  718.     X    dim.width_mm = w->core.width * WidthMMOfScreen(XtScreen(w)) /
  719.     X        WidthOfScreen(XtScreen(w));
  720.     X    dim.height_mm = w->core.height * HeightMMOfScreen(XtScreen(w)) /
  721.     X        HeightOfScreen(XtScreen(w));
  722.     X
  723.     X    XtGetSubvalues(&dim, subresources, XtNumber(subresources),
  724.     X        args, num_args);
  725.     X}
  726.     X
  727. SHAR_EOF
  728. if test 1448 -ne "`wc -c < 'subresourcesgetvalues.c'`"
  729. then
  730.     echo shar: error transmitting "'subresourcesgetvalues.c'" '(should have been 1448 characters)'
  731. fi
  732. fi # end of overwriting check
  733. echo shar: extracting "'subresourcesinit.c'" '(1584 characters)'
  734. if test -f 'subresourcesinit.c'
  735. then
  736.     echo shar: will not over-write existing file "'subresourcesinit.c'"
  737. else
  738. sed 's/^    X//' << \SHAR_EOF > 'subresourcesinit.c'
  739.     X/***********************************************************
  740.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  741.     X
  742.     X                        All Rights Reserved
  743.     X
  744.     XPermission to use, copy, modify, and distribute these examples for any
  745.     Xpurpose and without fee is hereby granted, provided that the above
  746.     Xcopyright notice appear in all copies and that both that copyright
  747.     Xnotice and this permission notice appear in supporting documentation,
  748.     Xand that the name of Digital not be used in advertising or publicity
  749.     Xpertaining to distribution of the software without specific, written
  750.     Xprior permission.
  751.     X
  752.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  753.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  754.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  755.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  756.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  757.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  758.     XOR PERFORMANCE OF THIS SOFTWARE.
  759.     X
  760.     X******************************************************************/
  761.     X
  762.     X{
  763.     X    mmDimensions dim;
  764.     X
  765.     X    XtGetSubresources(new, &dim, (String) NULL, (String) NULL,
  766.     X    subresources, XtNumber(subresources), args, num_args);
  767.     X
  768.     X    if (dim.width_mm != -1) {
  769.     X    new->core.width = dim.width_mm * WidthOfScreen(XtScreen(new)) /
  770.     X                WidthMMOfScreen(XtScreen(new));
  771.     X    }
  772.     X    if (dim.height_mm != -1) {
  773.     X    new->core.height = dim.height_mm *
  774.     X        HeightOfScreen(XtScreen(new)) /
  775.     X                HeightMMOfScreen(XtScreen(new));
  776.     X    }
  777.     X}
  778. SHAR_EOF
  779. if test 1584 -ne "`wc -c < 'subresourcesinit.c'`"
  780. then
  781.     echo shar: error transmitting "'subresourcesinit.c'" '(should have been 1584 characters)'
  782. fi
  783. fi # end of overwriting check
  784. echo shar: extracting "'subresourcessetvalues.c'" '(1568 characters)'
  785. if test -f 'subresourcessetvalues.c'
  786. then
  787.     echo shar: will not over-write existing file "'subresourcessetvalues.c'"
  788. else
  789. sed 's/^    X//' << \SHAR_EOF > 'subresourcessetvalues.c'
  790.     X/***********************************************************
  791.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  792.     X
  793.     X                        All Rights Reserved
  794.     X
  795.     XPermission to use, copy, modify, and distribute these examples for any
  796.     Xpurpose and without fee is hereby granted, provided that the above
  797.     Xcopyright notice appear in all copies and that both that copyright
  798.     Xnotice and this permission notice appear in supporting documentation,
  799.     Xand that the name of Digital not be used in advertising or publicity
  800.     Xpertaining to distribution of the software without specific, written
  801.     Xprior permission.
  802.     X
  803.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  804.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  805.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  806.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  807.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  808.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  809.     XOR PERFORMANCE OF THIS SOFTWARE.
  810.     X
  811.     X******************************************************************/
  812.     X
  813.     X{
  814.     X    static mmDimensions dim = {-1, -1};
  815.     X
  816.     X    XtSetSubvalues(&dim, subresources, XtNumber(subresources),
  817.     X        args, num_args);
  818.     X
  819.     X    if (dim.width_mm != -1) {
  820.     X    new->core.width = dim.width_mm * WidthOfScreen(XtScreen(new)) /
  821.     X                WidthMMOfScreen(XtScreen(new));
  822.     X    }
  823.     X    if (dim.height_mm != -1) {
  824.     X    new->core.height = dim.height_mm *
  825.     X        HeightOfScreen(XtScreen(new)) /
  826.     X                HeightMMOfScreen(XtScreen(new));
  827.     X    }
  828.     X}
  829. SHAR_EOF
  830. if test 1568 -ne "`wc -c < 'subresourcessetvalues.c'`"
  831. then
  832.     echo shar: error transmitting "'subresourcessetvalues.c'" '(should have been 1568 characters)'
  833. fi
  834. fi # end of overwriting check
  835. echo shar: extracting "'vendorinitialize.c'" '(1896 characters)'
  836. if test -f 'vendorinitialize.c'
  837. then
  838.     echo shar: will not over-write existing file "'vendorinitialize.c'"
  839. else
  840. sed 's/^    X//' << \SHAR_EOF > 'vendorinitialize.c'
  841.     X/***********************************************************
  842.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  843.     X
  844.     X                        All Rights Reserved
  845.     X
  846.     XPermission to use, copy, modify, and distribute these examples for any
  847.     Xpurpose and without fee is hereby granted, provided that the above
  848.     Xcopyright notice appear in all copies and that both that copyright
  849.     Xnotice and this permission notice appear in supporting documentation,
  850.     Xand that the name of Digital not be used in advertising or publicity
  851.     Xpertaining to distribution of the software without specific, written
  852.     Xprior permission.
  853.     X
  854.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  855.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  856.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  857.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  858.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  859.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  860.     XOR PERFORMANCE OF THIS SOFTWARE.
  861.     X
  862.     X******************************************************************/
  863.     X
  864.     Xstatic void VendorShellInitialize(req, new, args, num_args)
  865.     X    Widget req, new;
  866.     X    ArgList args;
  867.     X    Cardinal *num_args;
  868.     X{
  869.     X    VendorShellWidget v = (VendorShellWidget) new;
  870.     X    Atom my_wm_title_font, actual_type;
  871.     X    int actual_format;
  872.     X    unsigned long nitems, bytes_after;
  873.     X    unsigned char *data;
  874.     X
  875.     X    my_wm_title_font = FetchAtom(new, "MY_WM_TITLE_FONT");
  876.     X
  877.     X    if (XGetWindowProperty(XtDisplay(v),
  878.     X        RootWindowOfScreen(XtScreen(v)),
  879.     X        my_wm_title_font, 0L, 1L, False, my_wm_title_font,
  880.     X        &actual_type, &actual_format, &nitems,
  881.     X        &bytes_after, &data) == Success &&
  882.     X        actual_type == my_wm_title_font &&
  883.     X        actual_format == 32) {
  884.     X    v->vendor.title_font = (Font) *data;
  885.     X    } else v->vendor.title_font = None;
  886.     X
  887.     X    if (data != NULL) XFree((char *) data);
  888.     X}
  889. SHAR_EOF
  890. if test 1896 -ne "`wc -c < 'vendorinitialize.c'`"
  891. then
  892.     echo shar: error transmitting "'vendorinitialize.c'" '(should have been 1896 characters)'
  893. fi
  894. fi # end of overwriting check
  895. echo shar: extracting "'vendorrealize.c'" '(1606 characters)'
  896. if test -f 'vendorrealize.c'
  897. then
  898.     echo shar: will not over-write existing file "'vendorrealize.c'"
  899. else
  900. sed 's/^    X//' << \SHAR_EOF > 'vendorrealize.c'
  901.     X/***********************************************************
  902.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  903.     X
  904.     X                        All Rights Reserved
  905.     X
  906.     XPermission to use, copy, modify, and distribute these examples for any
  907.     Xpurpose and without fee is hereby granted, provided that the above
  908.     Xcopyright notice appear in all copies and that both that copyright
  909.     Xnotice and this permission notice appear in supporting documentation,
  910.     Xand that the name of Digital not be used in advertising or publicity
  911.     Xpertaining to distribution of the software without specific, written
  912.     Xprior permission.
  913.     X
  914.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  915.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  916.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  917.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  918.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  919.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  920.     XOR PERFORMANCE OF THIS SOFTWARE.
  921.     X
  922.     X******************************************************************/
  923.     X
  924.     Xstatic void VendorShellRealize(w, mask, attr)
  925.     X    Widget w;
  926.     X    XtValueMask *mask;
  927.     X    XSetWindowAttributes *attr;
  928.     X{
  929.     X    VendorShellWidget v = (VendorShellWidget) w;
  930.     X    Atom my_wm_no_title = FetchAtom(w, "MY_WM_NO_TITLE");
  931.     X
  932.     X    /* Make my superclass do all the dirty work */
  933.     X
  934.     X    (*wmShellWidgetClass->core_class.realize) (w, mask, attr);
  935.     X
  936.     X    if (v->vendor.no_title) {
  937.     X        XChangeProperty(XtDisplay(w), XtWindow(w),
  938.     X            my_wm_no_title, my_wm_no_title,
  939.     X            8, PropModeReplace, NULL, 0);
  940.     X    }
  941.     X}
  942. SHAR_EOF
  943. if test 1606 -ne "`wc -c < 'vendorrealize.c'`"
  944. then
  945.     echo shar: error transmitting "'vendorrealize.c'" '(should have been 1606 characters)'
  946. fi
  947. fi # end of overwriting check
  948. echo shar: extracting "'vendorresources.c'" '(1474 characters)'
  949. if test -f 'vendorresources.c'
  950. then
  951.     echo shar: will not over-write existing file "'vendorresources.c'"
  952. else
  953. sed 's/^    X//' << \SHAR_EOF > 'vendorresources.c'
  954.     X/***********************************************************
  955.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  956.     X
  957.     X                        All Rights Reserved
  958.     X
  959.     XPermission to use, copy, modify, and distribute these examples for any
  960.     Xpurpose and without fee is hereby granted, provided that the above
  961.     Xcopyright notice appear in all copies and that both that copyright
  962.     Xnotice and this permission notice appear in supporting documentation,
  963.     Xand that the name of Digital not be used in advertising or publicity
  964.     Xpertaining to distribution of the software without specific, written
  965.     Xprior permission.
  966.     X
  967.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  968.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  969.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  970.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  971.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  972.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  973.     XOR PERFORMANCE OF THIS SOFTWARE.
  974.     X
  975.     X******************************************************************/
  976.     X
  977.     X#define Offset(field) XtOffsetOf(VendorShellWidgetRec, vendor.field)
  978.     X
  979.     Xstatic XtResource resources[] = {
  980.     X    {XtNnoTitle, XtCNoTitle, XtRBoolean, sizeof(Boolean),
  981.     X    Offset(no_title), XtRImmediate, (XtPointer) FALSE},
  982.     X    {XtNtitleFont, XtCTitleFont, XtRFont, sizeof(Font),
  983.     X    Offset(title_font), XtRImmediate, (XtPointer) None}
  984.     X};
  985.     X
  986.     X#undef Offset
  987. SHAR_EOF
  988. if test 1474 -ne "`wc -c < 'vendorresources.c'`"
  989. then
  990.     echo shar: error transmitting "'vendorresources.c'" '(should have been 1474 characters)'
  991. fi
  992. fi # end of overwriting check
  993. echo shar: extracting "'vendorsetvalues.c'" '(1856 characters)'
  994. if test -f 'vendorsetvalues.c'
  995. then
  996.     echo shar: will not over-write existing file "'vendorsetvalues.c'"
  997. else
  998. sed 's/^    X//' << \SHAR_EOF > 'vendorsetvalues.c'
  999.     X/***********************************************************
  1000.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  1001.     X
  1002.     X                        All Rights Reserved
  1003.     X
  1004.     XPermission to use, copy, modify, and distribute these examples for any
  1005.     Xpurpose and without fee is hereby granted, provided that the above
  1006.     Xcopyright notice appear in all copies and that both that copyright
  1007.     Xnotice and this permission notice appear in supporting documentation,
  1008.     Xand that the name of Digital not be used in advertising or publicity
  1009.     Xpertaining to distribution of the software without specific, written
  1010.     Xprior permission.
  1011.     X
  1012.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  1013.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  1014.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  1015.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  1016.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  1017.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  1018.     XOR PERFORMANCE OF THIS SOFTWARE.
  1019.     X
  1020.     X******************************************************************/
  1021.     X
  1022.     Xstatic Boolean VendorShellSetValues(old, ref, new, args, num_args)
  1023.     X    Widget old, req, new;
  1024.     X    ArgList args;
  1025.     X    Cardinal *num_args;
  1026.     X{
  1027.     X    VendorShellWidget ov = (VendorShellWidget) old;
  1028.     X    VendorShellWidget nv = (VendorShellWidget) new;
  1029.     X    Atom my_wm_no_title;
  1030.     X
  1031.     X    if (XtIsRealized(new)) {
  1032.     X    if (ov->vendor.no_title != nv->vendor.no_title) {
  1033.     X        my_wm_no_title = FetchAtom(new, "MY_WM_NO_TITLE");
  1034.     X
  1035.     X        if (nv->vendor.no_title) {
  1036.     X        XChangeProperty(XtDisplay(new), XtWindow(new),
  1037.     X            my_wm_no_title, my_wm_no_title,
  1038.     X            8, PropModeReplace, NULL, 0);
  1039.     X        } else {
  1040.     X        XDeleteProperty(XtDisplay(new), XtWindow(new),
  1041.     X            my_wm_no_title);
  1042.     X        }
  1043.     X    }
  1044.     X    }
  1045.     X
  1046.     X    nv->vendor.title_font = ov->vendor.title_font;
  1047.     X    return FALSE;
  1048.     X}
  1049. SHAR_EOF
  1050. if test 1856 -ne "`wc -c < 'vendorsetvalues.c'`"
  1051. then
  1052.     echo shar: error transmitting "'vendorsetvalues.c'" '(should have been 1856 characters)'
  1053. fi
  1054. fi # end of overwriting check
  1055. echo shar: extracting "'wmprotocolaction.c'" '(1926 characters)'
  1056. if test -f 'wmprotocolaction.c'
  1057. then
  1058.     echo shar: will not over-write existing file "'wmprotocolaction.c'"
  1059. else
  1060. sed 's/^    X//' << \SHAR_EOF > 'wmprotocolaction.c'
  1061.     X/***********************************************************
  1062.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  1063.     X
  1064.     X                        All Rights Reserved
  1065.     X
  1066.     XPermission to use, copy, modify, and distribute these examples for any
  1067.     Xpurpose and without fee is hereby granted, provided that the above
  1068.     Xcopyright notice appear in all copies and that both that copyright
  1069.     Xnotice and this permission notice appear in supporting documentation,
  1070.     Xand that the name of Digital not be used in advertising or publicity
  1071.     Xpertaining to distribution of the software without specific, written
  1072.     Xprior permission.
  1073.     X
  1074.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  1075.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  1076.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  1077.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  1078.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  1079.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  1080.     XOR PERFORMANCE OF THIS SOFTWARE.
  1081.     X
  1082.     X******************************************************************/
  1083.     X
  1084.     Xstatic void WMProtocolAction(w, event, params, num_params)
  1085.     X    Widget w;
  1086.     X    XEvent *event;
  1087.     X    String *params;        /* unused */
  1088.     X    Cardinal *num_params;    /* unused */
  1089.     X{
  1090.     X    Atom protocol = (Atom) event->xclient.data.l[0];
  1091.     X
  1092.     X    if (event->type != ClientMessage) return;
  1093.     X
  1094.     X    /* Use atom values we got earlier */
  1095.     X    if (protocol == wm_take_focus) {
  1096.     X    Time t = (Time) event->xclient.data.l[1];
  1097.     X    (void) XtCallAcceptFocus(mainWidget, &t);
  1098.     X    } else if (protocol == wm_save_yourself) {
  1099.     X    /* Save application state */
  1100.     X    }
  1101.     X}
  1102.     X
  1103.     Xstatic char *shellTrans = 
  1104.     X    "<ClientMessage> WM_PROTOCOLS : WMProtocolAction()";
  1105.     Xstatic XtActionsRec actions[] = {
  1106.     X    {"WMProtocolAction", WMProtocolAction}
  1107.     X};
  1108.     X
  1109.     XXtAppAddActions(app, actions, XtNumber(actions));
  1110.     XXtAugmentTranslations(shell, XtParseTranslationTable(shellTrans));
  1111. SHAR_EOF
  1112. if test 1926 -ne "`wc -c < 'wmprotocolaction.c'`"
  1113. then
  1114.     echo shar: error transmitting "'wmprotocolaction.c'" '(should have been 1926 characters)'
  1115. fi
  1116. fi # end of overwriting check
  1117. echo shar: extracting "'workproc.c'" '(1558 characters)'
  1118. if test -f 'workproc.c'
  1119. then
  1120.     echo shar: will not over-write existing file "'workproc.c'"
  1121. else
  1122. sed 's/^    X//' << \SHAR_EOF > 'workproc.c'
  1123.     X/***********************************************************
  1124.     XCopyright 1990 by Digital Equipment Corporation, Maynard, Massachusetts.
  1125.     X
  1126.     X                        All Rights Reserved
  1127.     X
  1128.     XPermission to use, copy, modify, and distribute these examples for any
  1129.     Xpurpose and without fee is hereby granted, provided that the above
  1130.     Xcopyright notice appear in all copies and that both that copyright
  1131.     Xnotice and this permission notice appear in supporting documentation,
  1132.     Xand that the name of Digital not be used in advertising or publicity
  1133.     Xpertaining to distribution of the software without specific, written
  1134.     Xprior permission.
  1135.     X
  1136.     XDIGITAL AND THE AUTHORS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
  1137.     XSOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
  1138.     XFITNESS, IN NO EVENT SHALL DIGITAL BE LIABLE FOR ANY SPECIAL, INDIRECT
  1139.     XOR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
  1140.     XOF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
  1141.     XOR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE
  1142.     XOR PERFORMANCE OF THIS SOFTWARE.
  1143.     X
  1144.     X******************************************************************/
  1145.     X
  1146.     XBoolean CreatePopupChild(client_data)
  1147.     X    XtPointer client_data;
  1148.     X{
  1149.     X    Widget shell = (Widget) client_data;
  1150.     X    Cardinal num_children;
  1151.     X    XtCreatePopupChildProc create;
  1152.     X    Arg args[2];
  1153.     X    int n = 0;
  1154.     X
  1155.     X    XtSetArg(args[n], XtNnumChildren, &num_children);        n++;
  1156.     X    XtSetArg(args[n], XtNcreatePopupChildProc, &create);    n++;
  1157.     X
  1158.     X    XtGetValues(shell, args, n);
  1159.     X
  1160.     X    if (num_children == 0) (*create) (shell);
  1161.     X
  1162.     X    return TRUE;
  1163.     X}
  1164. SHAR_EOF
  1165. if test 1558 -ne "`wc -c < 'workproc.c'`"
  1166. then
  1167.     echo shar: error transmitting "'workproc.c'" '(should have been 1558 characters)'
  1168. fi
  1169. fi # end of overwriting check
  1170. echo shar: done with directory "'fragments'"
  1171. cd ..
  1172. #    End of shell archive
  1173. exit 0
  1174.  
  1175. dan
  1176. ----------------------------------------------------
  1177. O'Reilly && Associates   argv@sun.com / argv@ora.com
  1178. Opinions expressed reflect those of the author only.
  1179.